CentOS 6.0安装配置subversion
CentOS 6.0安装配置subversion
CentOS 6.0安装配置subversion
\
2011-11-18 20:35:06| 分类: CVS |举报|字号 订阅
环境:
a. 系统为centos 6.0
b. 分为svn协议和http协议方式
c. 使用svnadduser同时更新svn协议的密码文件和http协议的密码文件
\
1. 安装
\
# 安装subversion
yum install subversion
# 安装apache
yum groupinstall
# 安装mod_dav_svn模块
yum install mod_dav_svn
“Web Server”组中包含httpd的安装包
\
2. 配置apache
\
vi /etc/httpd/conf/httpd.conf
# 设置监听地址
Listen 192.168.1.11:8080
# 设置ServerName
ServerName 192.168.1.11:8080
3. 建立Svn
\
mkdir -p /data/subversion
cd /data/subversion
svnadmin create shell
chown -R apache:apache shell
# 权限文件和认证文件都放在以下目录
mkdir /data/subversion/conf
一定要改变所创建的Svn目录的拥有者为Web服务器运行的用户,否则出现不能写入这些权限错误,这里为apache
\
4. 使用svn协议
\
a. 编辑svn项目的配置文件,这个文件在用svnadmin创建的目录的conf子目录下
\
vi /data/subversion/shell/conf/svnserve.conf
# 匿名用户不能访问,认证用户具有写权限
anon-access = none
auth-access = write
# 设置权限和密码文件
password-db = /data/subversion/conf/passwd
authz-db = /data/subversion/conf/authz
# 认证登陆提示信息
realm = linuxjcq shell
b. 创建权限文件和用户名文件
\
cd /data/subversion/conf
# 配置权限:
vi authz
# 添加组,可以根据项目需要分成管理员组,只读组,也可以按具体的子目录来分组,进行权限控制
# 组成员用逗号分隔
[groups]
admin = jcq
# 我想/data/subversion所有项目的svn库都使用同样的权限,所以使用[/path/to/access]的形式,如果想对具体项目进行权限控制可以使用[项目名:/path/to/access]
[/]
admin = rw
* =
# 配置用户名和密码
vi passwd
jcq = xxxxxx
……
c. 将svn添加为服务
\
vi /etc/sysconfig/subversion
# 文件中为启动要加的选项
OPTIONS=”–listen-host 192.168.1.11 –listen-port 3690 -r /data/subversion -d”
vi /etc/rc.d/init.d/svnserve
#!/bin/bash
#
# /etc/rc.d/init.d/subversion
#
# Starts the Subversion Daemon
#
# chkconfig: 2345 90 10
# description: Subversion Daemon
# processname: svnserve
source /etc/rc.d/init.d/functions
[ -x /usr/bin/svnserve ] || exit 1
### Default variables
SYSCONFIG=”/etc/sysconfig/subversion”
### Read configuration
[ -r “$SYSCONFIG” ] && source “$SYSCONFIG”
RETVAL=0
prog=”svnserve”
desc=”Subversion Daemon”
start() {
echo -n $“Starting $desc ($prog): “
daemon $prog $OPTIONS
RETVAL=$?
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
echo
}
stop() {
echo -n $“Shutting down $desc ($prog): “
killproc $prog
RETVAL=$?
[ $RETVAL -eq 0 ] && success || failure
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
return $RETVAL
}
case “$1” in
start)
start
;;
stop)
stop
;;
restart)
stop
start
RETVAL=$?
;;
condrestart)
[ -e /var/lock/subsys/$prog ] && restart
RETVAL=$?
;;
*)
echo $“Usage: $0 { start|stop|restart|condrestart }”
RETVAL=1
esac
exit $RETVAL
chmod 0755 /etc/rc.d/init.d/svnserve
chkconfig –add svnserve
service svnserve start
也可以直接手动启动,例如:svnserve –listen-host 192.168.1.11
–listen-port 3690 -r /data/subversion -d
编辑/etc/rc.d/rc.local文件中加入这个启动命令
\
5. 使用http协议
\
a. 配置
\
vi /etc/httpd/conf.d/subversion.conf
# 确认这两行的存在
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
# 配置svn仓库
<Location /subversion>
DAV svn
SVNParentPath /data/subversion
<LimitExcept GET PROPFIND OPTIONS REPORT>
AuthzSVNAccessFile /data/subversion/conf/authz
AuthType Basic
AuthName “Authorization Realm”
AuthUserFile /data/subversion/conf/htpasswd.users
Require valie-user
</LimitExcept>
</Location>
b. 创建认证的文档,相当于使用svn协议时的passwd
\
htpasswd -cm /data/subversion/conf/htpasswd.users jcq
New password:
Re-type new password:
开始时你要利用 -cm 这个选项。它会创建文件并用 MD5
将口令加密。如果你需要加用户,请确定你只使用 -m
选项,而不包含初次创建时的 -c。
\
c. 创建权限文件
\
vi /data/subversion/conf/authz
# 添加组,可以根据项目需要分成管理员组,只读组,也可以按具体的子目录来分组,进行权限控制
# 组成员用逗号分隔
[groups]
admin = jcq
# 我想/data/subversion所有项目的svn库都使用同样的权限,所以使用[/path/to/access]的形式,如果想对具体项目进行权限控制可以使用[项目名:/path/to/access]
[/]
admin = rw
* =
\
我的svn协议和http协议使用相同的权限控制文件
\
d. 启动apache
\
service httpd start
\
\
\
svnmanager安装配置
\
\
说明:系统为CentOS 6.0,svn的配置和安装见前面一篇文章
1. 安装php和必要的软件包
\
yum groupinstall “PHP Support”
yum install php-mysql php-mbstring
# 安装VersionControl_SVN
/usr/bin/pear install -f –alldeps VersionControl_SVN
- 修改Svn父目录的权限:让apache对所有的svn目录和conf配置文件目录拥有控制权限
\
chown -R apache.apache /data/subversion
\
wget http://nchc.dl.sourceforge.net/project/svnmanager/svnmanager/1.08/svnmanager-1.08.tar.gz -P /usr/local/src
tar zxvf /usr/local/src/svnmanager-1.08.tar.gz -C /var/www/html/
cd /var/www/html
mv svnmanager-1.08 svnmanager && chown -R apache.apache svnmanager
4. 配置apache
\
vi /etc/httpd/conf.d/svnmanager.conf
<Location “/var/www/html/svnmanager/“>
Order deny,allow
Deny from all
Allow from all
</Location>
5. 创建数据库
\
mysql -uroot -p
> create database subversion;
> grant all on subversion.* to subversion ‘192.168.1.10’ identified by ‘xxxxxx’;
6. 编辑配置文件
\
cd /var/www/html/svnmanager
cp config.php.linux config.php
vi config.php
# 设置语言
$lang = “zh_CN.utf8”;
# 设置二进制文件的位置
$htpassword_cmd = “/usr/bin/htpasswd”;
$svn_cmd = “/usr/bin/svn”;
$svnadmin_cmd = “/usr/bin/svnadmin”;
# 设置Svn配置文件目录,Svn的父目录,Svn的http方式的认证文件,权限控制文件
$svn_config_dir = “/data/subversion/conf”;
$svn_repos_loc = “/data/subversion”;
$svn_passwd_file = “/data/subversion/conf/htpasswd.users”;
$svn_access_file = “/data/subversion/conf/authz”;
# 设置svn协议密码文件的位置
$svnserve_user_file=”/data/subversion/conf/passwd”;
# 设置mysql数据连接
$dsn = “mysqli://subversion:password 192.168.1.10/subversion”;
7. 重启启动apache,访问svnmanager
\
service httpd restart
访问http://servername:port/svnmanager,会自动建svn的数据表,第一次登陆的用户名和密码都为admin,登陆后新建一个管理员用户,admin在第一次登陆后注销会为不可用
8. 汉化
解压,覆盖到主目录的svnmanager子目录的文件即可